/**
 * Fecha: 09-oct-2013
 * Nombre Clase: UsuarioDAOImpl.java
 * Descripcion clase: 
 */
package vwg.na.vwm.rh.rhmotor.modelo.daoimpl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import vwg.na.vwm.rh.motorsdk.commons.entidades.Usuario;
import vwg.na.vwm.rh.rhmotor.modelo.dao.GenericDAO;
import vwg.na.vwm.rh.rhmotor.modelo.dao.UsuarioDAO;

/**
 * The Class UsuarioDAOImpl.
 * 
 */
@Repository
public class UsuarioDAOImpl extends GenericDAO<Usuario> implements UsuarioDAO {


	@Override
	@Transactional(readOnly = true, propagation = Propagation.REQUIRED)
	public Usuario findById(int persona) {
		return getHibernateTemplate().get(Usuario.class, persona);
	}

	@SuppressWarnings("unchecked")
	@Override
	@Transactional(readOnly = true, propagation = Propagation.REQUIRED)
	public Usuario findByNombre(String usuario) {
		List<Usuario> usuarios = getHibernateTemplate().find(
				"from Usuario as u LEFT JOIN FETCH u.persona as p"
				+ " WHERE u.usuarioId = ?", usuario);
		return usuarios.size() > 0 ? usuarios.get(0) : null;
	}
}
